package com.megalith.service;

import com.megalith.dto.CandidateGroupProcessDTO;
import com.megalith.dto.CandidateProcessInstanceBaseDTO;
import com.megalith.dto.TaskClaimDTO;
import com.megalith.vo.Result;
import com.megalith.vo.TaskEntityVO;

import java.util.List;

/**
 * @Description 候选人组，接口
 * @Author lfp
 * @Date 2022/7/16
 * @Version 1.0
 */
public interface CandidateGroupTaskService {
    /**
    *@Description 启动候选人组 流程实例(设置候选人组)
    *@Author lfp
    *@Date 2022/7/16
    *@param groupProcessDTO
    *@Return
    */
    Result startCandidateGroupProcess(CandidateGroupProcessDTO groupProcessDTO);

    /**
    *@Description 处理个人任务
    *@Author lfp
    *@Date 2022/7/16
    *@param processInstanceDTO
    *@Return
    */
    Result completePersonalProcess(CandidateProcessInstanceBaseDTO processInstanceDTO);

    /**
    *@Description 查询可以认领的任务
    *@Author lfp
    *@Date 2022/7/16
    *@param userId
    *@Return
    */
    List<TaskEntityVO> claimableTaskList(String userId);

    /**
    *@Description 认领组任务
    *@Author lfp
    *@Date 2022/7/17
    *@param claimDTO
    *@Return
    */
    Result claimGroupTask(TaskClaimDTO claimDTO);

    /**
    *@Description 归还已认领的组任务
    *@Author lfp
    *@Date 2022/7/17
    *@param claimDTO
    *@Return
    */
    Result unclaimGroupTask(TaskClaimDTO claimDTO);
}
